Perdorimi i variablave $_GET
dhe $_POST
Nga ajo cfare trajtuam deri tani u kuptua qe variablat super globale $_GET
dhe $_POST
mbajne vlera te parametrave qe vijne ne kerkesat HTTP GET dhe POST respektivisht. Keto parametra mund te kalohen nepermjet URL-se nepermjet kerkeses GET, ose mund te kalohen te fshehura ne rastin e kerkeses POST. Eshte e rendesishme qe informacionet sekrete te mos kalohen nepermjet URL-se pasi mund te shihet lehtesisht nga cdokush dhe mund te keqperdoret informacioni. Ne keto raste eshte me mire te kalohen nepermjet nje kerkese POST.
Kalimi i te dhenave nepermjet URL-se
Le te marrim nje shembull sesi mund te kalojme te dhena nga nje faqe ne nje tjeter. Supozojme qe kemi nje faqe qe shfaq nje liste me perdorues, dhe nje faqe tjeter qe shfaq te dhenat e nje perdoruesi te vetem.
<?php
//Le ta zeme se listen e meposhtme te perdoruesve e marrim nga baza e te dhenave
//Liste me perdorues perkatesisht: id => emer
$perdorues = [
"1" => "Alban Afmeti",
"2" => "Drilon Kerxhaliu",
"3" => "Leart Gjoni"
];
?>
<!-- Nuk kemi perfshire etiketat baze te HTML-se <html></html> etj. per arsye rremuje-->
<!-- Shfaqja e listes ne html -->
<ul>
<?php foreach($perdorues as $id => $emer) { ?>
<li><a href="profile.php?id=<?php echo $id; ?>"> <?php echo $emer; ?> </a></li>
<?php } ?>
</ul>
Pasi kthehet pergjigja nga serveri, faqja e mesiperme do te shfaqej ne brouser me HTML e meposhtme:
<!-- Nuk kemi perfshire etiketat baze te HTML-se si <html></html> etj. per arsye rremuje-->
<ul>
<li><a href="profile.php?id=1"> Alban Afmeti </a></li>
<li><a href="profile.php?id=2"> Drilon Kerxhaliu </a></li>
<li><a href="profile.php?id=3"> Leart Gjoni </a></li>
</ul>
Ne brouser shfaqet lista me perdorues ne forme linku, qe ne rast se klikojme mbi to do te na ridrejtoje tek nje faqe me emrin profile.php
. Ne atributin href
te linkut veme re qe pervec emrit te faqes profile.php
eshte kaluar edhe nje parameter id
pas pikepyetjes ?
. Kjo eshte nje menyre e kalimit te te dhenave nga nje faqe ne nje tjeter nepermjet URL-se. Pasi caktojme pathin e skedarit qe do te aksesohet ne server (ne kete rast profile.php
) mund te kalojme parametra ne formen ?key1=value&key2=value&key3=value
. Duke klikuar mbi elementin e pare te listes, brouseri do te ridrejtohet tek nje faqe tjeter dhe ne shiritin e adreses do te shfaqet http://shembull.com/profile.php?id=1
(kemi marre si shembull domeinin shembull.com). Le te shohim permbajtjen e faqes profile.php
:
<?php
//Le ta zeme se listen e meposhtme te perdoruesve e marrim nga baza e te dhenave
//Liste me perdorues perkatesisht: id => emer
$perdorues = [
"1" => "Alban Afmeti",
"2" => "Drilon Kerxhaliu",
"3" => "Leart Gjoni"
];
// Perdorimi i parametrit te marre nepermjet URL-se
$id_user = null
if(isset($_GET['id'])) { //bejme nje kontroll per siguri
$id_user = $_GET['id'];
}
//Nqs. id eshte dhene marrim emrin e perdoruesit
$emri = is_null($id_user) ? "" : $perdorues[$id_user];
?>
<p>Emri i perdoruesit: <?php echo $emri; ?></p>
Ne varesi te ID-se se kaluar nepermjet URL-se do te printohet dhe emri i perdoruesit p.sh.:
Ne rastin e URL-se http://shembull.com/profile.php?id=1
ne brouser do te printohet: Emri i perdoruesit: Alban Afmeti.
Ne rastin e URL-se http://shembull.com/profile.php?id=2
ne brouser do te printohet: Emri i perdoruesit: Drilon Kerxhaliu.
Kalimi i te dhenave te fshehura nepermjet formave
Ne shume raste do te na duhet te kalojme te dhena (jo te futura nga vizitori) nepermjet formave. Ajo cfare duhet te perdorim eshte perdorimi i inputeve te tipit hidden
. Nepermjet ketij inputi ne mund te ruajme te dhena qe vizitori nuk i sheh drejtperdrejt ne brouser, dhe ne momentin qe behet submit ato dergohet ne krah me te dhenat qe fut vizitori.
P.sh. le te shohim formen e meposhtme:
<?php
//Supozojme qe kemi nje variabel qe mban nje te dhene te caktuar
$info = "12345678";
?>
<form method="post" action="faqe_tjeter.php">
<input type="hidden" name="info" value="<?php echo $info; ?>" />
<input type="text" name="emri" placeholder="Emer Mbiemer"/>
<input type="submit" name="submit" value="Dergo"/>
</form>
Ne te vertete vizitori shikon vetem nje fushe teksti per te vendosur Emer Mbiemer
dhe nje buton Dergo
. Ne te vertete, pasi vizitori klikon mbi butonin Dergo
, bashke me emrin dhe mbiemrin dergohet edhe informacioni i fshehur ne inputin e tipit hidden
. Kjo e dhene mund te aksesohet ne faqen qe do te trajtohet kerkesa POST
, me ane te variablit super global $_POST[info]
, pasi atributi name
ka vleren info
.
Kalimi i te dhenave nepermjet sesioneve
Ne rastin kur te dhenat qe do te kalojme nga nje faqe ne nje tjeter jane te medha, si p.sh. nje array me disa elemente, mund te perdorim sessionet.
Ne faqen e pare p.sh. index.php
ku kemi te dhenat, i ruajme ato ne nje session:
<?php
//index.php
//Gjithmone perpara se te perdorim sesionet duhet t'i fillojme ato
session_start();
$perdorues = [
"1" => "Alban Afmeti",
"2" => "Drilon Kerxhaliu",
"3" => "Leart Gjoni"
];
$_SESSION['perdorues'] = $perdorues;
//Ridrejtohemi tek faqja tjeter:
header("Location: faqe_tjeter.php");
?>
Ne faqen tjeter mund te aksesojme te dhenat e kaluara:
<?php
//faqe_tjeter.php
session_start();
$perdorues = [];
if(isset($_SESSION['perdorues'])) { //bejme kontrollin per siguri
$perdorues = $_SESSION['perdorues'];
//Fshijme kete session pasi nuk na nevojitet me
unset($_SESSION['perdorues']);
}
//Mund te perdorim variablin $perdorues qe e kaluam nga faqja index.php
?>